<?php
namespace app\wx\controller;
use think\Controller;
//use think\Request;
use think\config;

// use think\Db;
class Indexof1 extends Controller
{
   /**
    * 接收微信发送的消息 案例
    * 设置
    */
    public $token = 'hjkhjk';
    // http://2.mswl.applinzi.com/t3f3/Wx.php/Home/Lianjie/index 原案例
    // http://www.hyhthjk.com.cn/note.php/wx/Indexof/checkSignature 现地址

    /***
     * 接收微信传来的消息
     */
    public function getmess(){
        $signature = input('get.signature');   
        $timestamp = input('get.timestamp');
        $nonce = input('get.nonce');
       
        $echostr = input('get.echostr');
        if(!isset($echostr)){
            // 没传echostr 
            $this->receive();
    
        }else{
            //传echostr 要验证
            $this->checkSignature($signature,$timestamp,$nonce, $echostr);
        }

    }


    /**
     * 验证接口权限
     * 微信传来signature nonce timestamp echostr
     * 验证成功返回给微信echostr
     */
    public function checkSignature($signature,$timestamp,$nonce, $echostr)
    {
   
        $token = $this->token;
        
         $tmpArr = array($token, $timestamp, $nonce);//组成新数组
         sort($tmpArr, SORT_STRING);//重新排序
         $tmpStr =implode('', $tmpArr );//转换成字符串
         $tmpStr = sha1( $tmpStr );  //再将字符串进行加密
         
 
         if( $tmpStr == $signature ){
 
             echo  $echostr;
         }else{
             return 'false';
             
         }
     }
    
    
/*
*接收函数
*/
public  function  receive(){
   // $obj=$GLOBALS['HTTP_RAW_POST_DATA'];

   $obj=file_get_contents("php://input");    //代替上面那句
    //simplexml_load_string xml转php 对象  SimpleXMLElement 收到的xml转成类后的名字，LIBXML_NOCDATA 忽略cdata 使文本正常显示
    // $postSql = simplexml_load_string($obj,'SimpleXMLElement',LIBXML_NOCDATA);
   // $postSql = simplexml_load_string($obj,'SimpleXMLElement');
    //存入日志
    $this->logger("\n接收：\n".$obj."\n");
  // $this->logger("接受：\n".$postSql);

}

/*
*把接受到的消息存入 日志 ，如果日志大于100000 则删除一次日志
*/

private function logger($content){
    $logSize=100000;

    $log="../note/wx/log.txt";

    if(file_exists($log) && filesize($log)  > $logSize){
        unlink($log);
    }

    file_put_contents($log,date('H:i:s')." ".$content."\n",FILE_APPEND);

}
  
	
}
